package com.joolun.tennis.mapper;

import java.util.List;
import com.joolun.tennis.domain.Coach;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;

/**
 * 教练Mapper接口
 * 
 * @author www.joolun.com
 * @date 2022-03-08
 */
public interface CoachMapper 
{
    /**
     * 查询教练
     * 
     * @param id 教练ID
     * @return 教练
     */
    public Coach selectCoachById(Long id);

    /**
     * 查询教练列表
     * 
     * @param coach 教练
     * @return 教练集合
     */
    public List<Coach> selectCoachList(Coach coach);
//    /**
//     * 查询教练俱乐部关联是否存在
//     *
//     * @param coachId 教练ID
//     * @param clubId 俱乐部ID
//     * @return 记录条数
//     */
//    public int selectCoachClub(@Param("clubId") Long clubId, @Param("coachId")Long coachId);
    /**
     * 查询教练列表
     *
     * @param clubId 俱乐部ID
     * @return 教练集合
     */
    public List<Coach> selectCoachListByClubId(Long clubId);

    /**
     * 新增教练
     * 
     * @param coach 教练
     * @return 结果
     */
    public int insertCoach(Coach coach);
//    /**
//     * 新增教练俱乐部关联
//     *
//     * @param coachId 教练id
//     * @param clubId 俱乐部id
//     * @return 结果
//     */
//    @Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "id")
//    public int insertCoachClub(@Param("coachId")Long coachId,@Param("clubId")Long clubId,@Param("id")Long id);

    /**
     * 修改教练
     * 
     * @param coach 教练
     * @return 结果
     */
    public int updateCoach(Coach coach);

    /**
     * 删除教练
     * 
     * @param id 教练ID
     * @return 结果
     */
    public int deleteCoachById(Long id);

    /**
     * 删除教练信息
     *
     * @param coachId 教练ID
     * @return 结果
     */
    public int deleteCoachClubByCoachId(@Param("coachId") Long coachId,@Param("clubId")Long clubId);

    /**
     * 批量删除教练
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteCoachByIds(Long[] ids);
}
